const BaseCheck = require("../base/baseCheck")

class Check extends BaseCheck {

	constructor() {
		super()
	}

	/**
	 * base64
	 * @param ctx 环境上下文
	 */
	static base64 (ctx) {
		ctx.yb_validate.isString('code')
		this.base64Type(ctx)
	}

	/**
	 * base64 类型
	 * @param ctx 环境上下文
	 */
  static base64Type (ctx) {
    ctx.yb_validate.isIn('type', ['encode', 'decode', 'hexEncode', 'hexDecode'])
  }

	/**
	 * 图片转Base64
	 * @param ctx 环境上下文
	 */
	static imageToBase64 (ctx) {
		ctx.yb_validate.isString('imageUrl')
	}

	/**
	 * base64转图片
	 * @param ctx 环境上下文
	 */
	static base64ToImage (ctx) {
		ctx.yb_validate.isString('imageStr')
	}

	/**
	 * md5
	 * @param ctx 环境上下文
	 */
	static md5 (ctx) {
		ctx.yb_validate.isString('input')
		ctx.yb_validate.isIn('type', ['md5', 'sha1', 'sha256', 'sha512'])
		ctx.yb_validate.defaultData('key', '')
	}

	/**
	 * aes
	 * @param ctx 环境上下文
	 */
	static aes (ctx) {
		ctx.yb_validate.isString('input')
		ctx.yb_validate.isIn('type', ['encode', 'decode'])
		ctx.yb_validate.defaultData('key', '')
	}
}

module.exports = Check
